# @Time    :2025/4/7 20:31
"""
练习题 5：线程池的使用
创建一个线程池，最大线程数为 2。
向线程池中提交 4 个任务，每个任务是将一个字符串反转并打印出来。
等待所有任务执行完毕后，关闭线程池并打印 "Thread pool closed"。
"""

import concurrent.futures


def func(str1):
    s = str1[::-1]
    print({s})
    return s



if __name__ == "__main__":
    strings = ["hello", "world", "python", "thread"]
    # 使用with语句来确保线程被迅速清理
    with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
        future_list = [executor.submit(func, str1) for str1 in strings]
        for future in concurrent.futures.as_completed(future_list):
            future.result()

        print("Thread pool closed")
